﻿using System.Collections.Generic;
using System.Linq;
using MJD.Comunes.DtoEntidades;
using MJD.Comunes.Entidades;

namespace MJD.Logica.Traductores
{

    /// <summary>
    /// Clase que traduce la entidad Ramo en un DtoRamo
    /// </summary>
    public class TraductorRamo
    {
        /// <summary> Metodo que traduce los datos de la entidad Ramo en DtoRamo para ser serializado para enviarse por el servicio </summary>
        /// <param name="entidad">datos de la entidad a ser traducido</param>
        /// <returns>DtoRamo</returns>
        public static DtoRamo TraducirEntidad(Ramo entidad)
        {
            DtoRamo dto = new DtoRamo();
            dto.Id = entidad.Id;
            dto.Nombre = entidad.Nombre;

            return dto;
        }


        /// <summary> Metodo que traduce los datos del DtoRamo en Ramo para ser manejado por el servidor </summary>
        /// <param name="dto">dato del dto para traducir en entidad</param>
        /// <returns>Ramo</returns>
        public static Ramo TraducirDto(DtoRamo dto)
        {
            Ramo entidad = new Ramo();
            entidad.Id = dto.Id;
            entidad.Nombre = dto.Nombre;

            return entidad;
        }


        /// <summary> Metodo que traduce una lista de entidades a una lista de dto's </summary>
        /// <param name="listaEntidad"></param>
        /// <returns></returns>
        public static List<DtoRamo> TraducirListaEntidad(IList<Ramo> listaEntidad)
        {
            return listaEntidad.Select(TraducirEntidad).ToList();
        }


        /// <summary> Metodo que traduce una lista de dto's a una lista de entidades </summary>
        /// <param name="listaDto">lista a traducir</param>
        /// <returns>lista de entidades</returns>
        public static IList<Ramo> TraducirListaDto(List<DtoRamo> listaDto)
        {
            return listaDto.Select(TraducirDto).ToList();
        }
    }
}
